package procsim;

public class PaintRegisters2 extends PaintTab {
    public PaintRegisters2(Paint parent) {
        super(parent);
        // Coordinates
        Design.regsel.addCoords(this, 20, 150, 20, 293);
        Design.regsel0.addCoords(this, 20, 235, 40, 235);
        Design.regsel1.addCoords(this, 20, 264, 40, 264);
        Design.regsel2.addCoords(this, 20, 293, 40, 293);
        Design.ldREG.addCoords(this, Design.Reg2DC.getEnableCoords(20));
        Design.Reg2DCout0.addCoords(this, 140, 209, 150, 209);
        Design.Reg2DCout0.addCoords(this, 150, 209, 150, 20);
        Design.Reg2DCout0.addCoords(this, 150, 20, 380, 20);
        Design.Reg2DCout0.addCoords(this, 380, 20, 380, 80);
        Design.Reg2DCout0.addCoords(this, 380, 80, 400, 80);
        Design.Reg2DCout1.addCoords(this, 140, 225, 160, 225);
        Design.Reg2DCout1.addCoords(this, 160, 225, 160, 80);
        Design.Reg2DCout1.addCoords(this, 160, 80, 200, 80);
        Design.Reg2DCout2.addCoords(this, 140, 241, 170, 241);
        Design.Reg2DCout2.addCoords(this, 170, 241, 170, 140);
        Design.Reg2DCout2.addCoords(this, 170, 140, 380, 140);
        Design.Reg2DCout2.addCoords(this, 380, 140, 380, 200);
        Design.Reg2DCout2.addCoords(this, 380, 200, 400, 200);
        Design.Reg2DCout3.addCoords(this, 140, 257, 180, 257);
        Design.Reg2DCout3.addCoords(this, 180, 257, 180, 200);
        Design.Reg2DCout3.addCoords(this, 180, 200, 200, 200);
        Design.Reg2DCout4.addCoords(this, 140, 273, 190, 273);
        Design.Reg2DCout4.addCoords(this, 190, 273, 190, 260);
        Design.Reg2DCout4.addCoords(this, 190, 260, 330, 260);
        Design.Reg2DCout4.addCoords(this, 330, 260, 330, 313);
        Design.Reg2DCout4.addCoords(this, 330, 313, 353, 313);
        Design.ldSP.addCoords(this, Design.RegOR.getLower2Coords(20));
        Design.incSP.addCoords(this, Design.SP.getIncCoords(33));
        Design.decSP.addCoords(this, Design.SP.getDecCoords(33));
        Design.RegORout.addCoords(this, Design.RegOR.getResCoords(23));
        Design.Reg2DCout5.addCoords(this, 140, 289, 180, 289);
        Design.Reg2DCout5.addCoords(this, 180, 289, 180, 320);
        Design.Reg2DCout5.addCoords(this, 180, 320, 200, 320);
        Design.Reg2DCout6.addCoords(this, 140, 305, 170, 305);
        Design.Reg2DCout6.addCoords(this, 170, 305, 170, 380);
        Design.Reg2DCout6.addCoords(this, 170, 380, 380, 380);
        Design.Reg2DCout6.addCoords(this, 380, 380, 380, 440);
        Design.Reg2DCout6.addCoords(this, 380, 440, 400, 440);        
        Design.Reg2DCout7.addCoords(this, 140, 321, 160, 321);
        Design.Reg2DCout7.addCoords(this, 160, 321, 160, 440);
        Design.Reg2DCout7.addCoords(this, 160, 440, 200, 440);
        Design.regIN.addCoords(this, 415, 35, 455, 35);
        Design.regIN.addCoords(this, Design.AX.getInCoords(15));
        Design.AXout.addCoords(this, Design.AX.getOutCoords(15));
        Design.AXout.addCoords(this, 455, 125, 520, 125);
        Design.AXout.addCoords(this, 520, 125, 520, 29);
        Design.AXout.addCoords(this, 520, 29, 600, 29);
        Design.regIN.addCoords(this, 215, 35, 255, 35);
        Design.regIN.addCoords(this, Design.BX.getInCoords(15));
        Design.BXout.addCoords(this, Design.BX.getOutCoords(20));
        Design.BXout.addCoords(this, 255, 130, 525, 130);
        Design.BXout.addCoords(this, 525, 130, 525, 45);
        Design.BXout.addCoords(this, 525, 45, 600, 45);
        Design.regIN.addCoords(this, 415, 155, 455, 155);
        Design.regIN.addCoords(this, Design.CX.getInCoords(15));
        Design.CXout.addCoords(this, Design.CX.getOutCoords(15));
        Design.CXout.addCoords(this, 455, 245, 530, 245);
        Design.CXout.addCoords(this, 530, 245, 530, 61);
        Design.CXout.addCoords(this, 530, 61, 600, 61);
        Design.regIN.addCoords(this, 215, 155, 255, 155);
        Design.regIN.addCoords(this, Design.DX.getInCoords(15));
        Design.DXout.addCoords(this, Design.DX.getOutCoords(20));
        Design.DXout.addCoords(this, 255, 250, 535, 250);
        Design.DXout.addCoords(this, 535, 250, 535, 77);
        Design.DXout.addCoords(this, 535, 77, 600, 77);
        Design.regIN.addCoords(this, 415, 275, 455, 275);
        Design.regIN.addCoords(this, Design.SP.getInCoords(15));
        Design.SPout.addCoords(this, Design.SP.getOutCoords(15));
        Design.SPout.addCoords(this, 455, 365, 540, 365);
        Design.SPout.addCoords(this, 540, 365, 540, 93);
        Design.SPout.addCoords(this, 540, 93, 600, 93);
        Design.regIN.addCoords(this, 215, 275, 255, 275);
        Design.regIN.addCoords(this, Design.BP.getInCoords(15));
        Design.BPout.addCoords(this, Design.BP.getOutCoords(20));
        Design.BPout.addCoords(this, 255, 370, 400, 370);
        Design.BPout.addCoords(this, 400, 370, 400, 380);
        Design.BPout.addCoords(this, 400, 380, 545, 380);
        Design.BPout.addCoords(this, 545, 380, 545, 109);
        Design.BPout.addCoords(this, 545, 109, 600, 109);
        Design.regIN.addCoords(this, 415, 395, 455, 395);
        Design.regIN.addCoords(this, Design.SI.getInCoords(15));
        Design.SIout.addCoords(this, Design.SI.getOutCoords(15));
        Design.SIout.addCoords(this, 455, 485, 550, 485);
        Design.SIout.addCoords(this, 550, 485, 550, 125);
        Design.SIout.addCoords(this, 550, 125, 600, 125);
        Design.regIN.addCoords(this, 215, 395, 255, 395);
        Design.regIN.addCoords(this, Design.DI.getInCoords(15));
        Design.DIout.addCoords(this, Design.DI.getOutCoords(20));
        Design.DIout.addCoords(this, 255, 490, 555, 490);
        Design.DIout.addCoords(this, 555, 490, 555, 141);
        Design.DIout.addCoords(this, 555, 141, 600, 141);
        Design.regsel.addCoords(this, 580, 170, 671, 170);
        Design.regsel0.addCoords(this, 631, 170, 631, 150);
        Design.regsel1.addCoords(this, 650, 170, 650, 150);
        Design.regsel2.addCoords(this, 671, 170, 671, 150);
        Design.Reg2MP1out.addCoords(this, Design.Reg2MP1.getResCoords(80));
        Design.Reg2MP1out.addCoords(this, 780, 85, 780, 355);
        Design.Reg2MP1out.addCoords(this, 780, 185, 655, 185);
        Design.Reg2MP1out.addCoords(this, Design.RegTMP.getInCoords(15));
        Design.Reg2MP1out.addCoords(this, 780, 265, 735, 265);
        Design.Reg2MP1out.addCoords(this, Design.Reg2ADD.getInBCoords(15));
        Design.Reg2MP1out.addCoords(this, 780, 355, 720, 355);
        Design.Reg2MP1out.addCoords(this, 720, 355, 720, 370);
        Design.ldTM.addCoords(this, Design.RegTMP.getLdCoords(35));
        Design.TMPout.addCoords(this, Design.RegTMP.getOutCoords(20));
        Design.Reg2ADDout.addCoords(this, Design.Reg2ADD.getResCoords(15));
        Design.Reg2ADDout.addCoords(this, 695, 355, 672, 355);
        Design.Reg2ADDout.addCoords(this, 672, 355, 672, 370);
        Design.R7.addCoords(this, 760, 420, 790, 420);
        Design.REGout.addCoords(this, Design.Reg2MP2.getResCoords(20));

        // Collections
        elements.add(Design.Reg2DC);
        elements.add(Design.Reg2MP1);
        elements.add(Design.Reg2MP2);
        elements.add(Design.Reg2ADD);
        elements.add(Design.RegOR);
        elements.add(Design.RegTMP);
        elements.add(Design.AX);
        elements.add(Design.BX);
        elements.add(Design.CX);
        elements.add(Design.DX);
        elements.add(Design.SP);
        elements.add(Design.BP);
        elements.add(Design.SI);
        elements.add(Design.DI);

        lines.add(Design.regsel);
        lines.add(Design.regIN);
        lines.add(Design.SPout);
        lines.add(Design.REGout);
        lines.add(Design.AXout);
        lines.add(Design.BXout);
        lines.add(Design.CXout);
        lines.add(Design.DXout);
        lines.add(Design.BPout);
        lines.add(Design.SIout);
        lines.add(Design.DIout);
        lines.add(Design.Reg2DCout);
        lines.add(Design.Reg2MP1out);
        lines.add(Design.TMPout);
        lines.add(Design.Reg2ADDout);
        lines.add(Design.Reg2DCout0);
        lines.add(Design.Reg2DCout1);
        lines.add(Design.Reg2DCout2);
        lines.add(Design.Reg2DCout3);
        lines.add(Design.Reg2DCout4);
        lines.add(Design.Reg2DCout5);
        lines.add(Design.Reg2DCout6);
        lines.add(Design.Reg2DCout7);
        lines.add(Design.ldSP);
        lines.add(Design.incSP);
        lines.add(Design.decSP);
        lines.add(Design.RegORout);
        lines.add(Design.ldTM);
        lines.add(Design.R7);
        lines.add(Design.regsel0);
        lines.add(Design.regsel1);
        lines.add(Design.regsel2);
        lines.add(Design.ldREG);
    }
}
